// 需要处理登录状态验证的应用，当服务器返回特定错误码时自动登出用户

import axios from "axios";
import qs from 'qs';
import { ElMessage, ElMessageBox } from 'element-plus';
import { Session, Local } from '/@/utils/storage';
// 创建axios实例
const instance = axios.create();
// 请求拦截器

instance.interceptors.request.use(function (config) {
    let token = JSON.parse(localStorage.getItem('tokens'))

    if (config.method === 'post') {
        if (typeof config.data === 'string' && config.data.startsWith('http')) {
            // 如果是URL，则进行相应处理，例如转换为下载文件的请求
            // 这里只是一个示例，具体实现根据你的需求来定
            config.data = qs.stringify(config.data)
        } else {
            config.data = (config.data)
        }
    }
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    console.log(error);
    return Promise.reject(error);
});
// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    if (response.data.code == 5) {
        ElMessage({
            message: '抱歉，登录已到期',
            type: 'error',
        });
        localStorage.clear()
        Session.clear()
        window.location.reload()
    }
    else if(response.data.code == 99){
        ElMessage({
            message: '抱歉，已被封禁',
            type: 'error',
        });
        localStorage.clear()
        Session.clear()
        window.location.reload()
    }
    return response.data;
}, function (error) {
    // 对响应错误做点什
    console.log(error);
    return Promise.reject(error);
});
// 导出实例
export default instance;
